function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function(n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}

function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}

function getLastDate(date){
	if (date.length == 10){
		//日
		var currentDate = new Date(date); // 将日期字符串转换为 Date 对象
		currentDate.setDate(currentDate.getDate() - 1); // 获取昨天的日期
		var yesterdayDate = currentDate.toISOString().slice(0, 10); // 格式化为 "YYYY-MM-DD" 格式
		return yesterdayDate;
	}
	if (date.length == 7){
		//月
		var dateParts = date.split("-");
		var year = parseInt(dateParts[0]);
		var month = parseInt(dateParts[1]);
		
		var currentDate = new Date(year, month - 1, 1); // 将日期字符串转换为 Date 对象
		
		currentDate.setMonth(currentDate.getMonth() - 1); // 获取上一个月的日期
		
		var lastMonthYear = currentDate.getFullYear();
		var lastMonth = currentDate.getMonth() + 1; // 月份是从 0 开始计数的，所以要加 1
		if (lastMonth < 10) {
		    lastMonth = "0" + lastMonth; // 如果月份小于 10，补充 0
		}
		
		var lastMonthDate = lastMonthYear + "-" + lastMonth; // 格式化为 "YYYY-MM" 格式
		return lastMonthDate;
	}
	if (date.length == 4){
		var year = parseInt(date);
		var lastYear = year - 1;
		return lastYear;
	}
	return "";
}

function getDate(showDate, showMonth, showYear) {
	const date = new Date();

	let year = date.getFullYear();
	let month = date.getMonth() + 1;
	let day = date.getDate();
	month = month > 9 ? month : '0' + month;;
	day = day > 9 ? day : '0' + day;
	if (showDate) {
		return `${year}-${month}-${day}`;
	} else if (showMonth) {
		return `${year}-${month}`;
	} else{
		return `${year}`;
	}
}

function getPageData(options){
	const { srcData,pageSize, pageCurrent, success, value } = options
	var array = JSON.parse(JSON.stringify(srcData));
	let total = array.length
	let data = array.filter((item, index) => {
		const idx = index - (pageCurrent - 1) * pageSize
		return idx < pageSize && idx >= 0
	});
	if (value) {
		data = []
		array.forEach(item => {
			if (item.name.indexOf(value) !== -1) {
				data.push(item)
			}
		})
		total = data.length
	}
	typeof success === 'function' &&
		success({
			data: data,
			total: total
		});
}

var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	humanize: function(milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	format: function(dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		var _format = function(number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
			_format(date.getHours()) + ':' + _format(date.getMinutes());
	},
	parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	}
};



export {
	formatTime,
	formatLocation,
	getLastDate,
	getDate,
	dateUtils,
	getPageData,
}
